#pragma once
#include "fxcc/core/MetaCache.h"

#include "fxcc/core/graph/common/MeshJack.h"
#include "fxcc/core/graph/common/Animation.h"
#include "fxcc/core/graph/common/MaterialView.h"
#include "fxcc/core/graph/common/Bones.h"

namespace fxcc::graph::common
{
	struct MeshMap
	{
		MetaMapIndex m_Index;
		std::shared_ptr<fxcc::graph::common::MeshJack> m_Value;

		bool OnLoad();
		
	};

	struct SkinnedMeshMap
	{
		MetaMapIndex m_Index;
		std::shared_ptr<fxcc::graph::common::MeshJack> m_Value;
		bool OnLoad();

	};

	struct BoneFileMap
	{
		MetaMapIndex m_Index;
		std::shared_ptr<fxcc::graph::common::Bones> m_Value;
		bool OnLoad();
	};

	struct MaterialViewMap
	{
		MetaMapIndex m_Index;
		std::shared_ptr<fxcc::graph::common::MaterialView> m_Value;
		bool OnLoad();
	};

	struct AnimationMap
	{
		MetaMapIndex m_Index;
		std::shared_ptr<fxcc::graph::common::Animation> m_Value;

		bool OnLoad();
	};

};